package cn.kgc.tangcco.tcbd1011.no13.base.properties;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

/**
 * @author 22900
 * 读取 applicationContext.properties文件
 * 采用单例模式 封装PropertiesUtils类
 * 自己new自己，且只new一次
 */
public class PropertiesUtils {
	//声明一个将读取properties文件封装为键值对的对象
	private Properties properties;
	//封装声明一个静态的自身类对象
	private static PropertiesUtils propertiesUtils;
	//封装无参构造方法，并在无参构造方法内读取properties文件
	private PropertiesUtils() {
		//赋值
		properties = new Properties();
		//通过字节流读取properties文档
		InputStream in  = this.getClass().getClassLoader().getResourceAsStream("applicationContext.properties");
		
		try {
			//将读取到的文件key与value通过load方法，存储在properties对象内
			properties.load(in);
		} catch (IOException e) {
			e.printStackTrace();
			System.out.println("读取properties文档错误");
		}
	}
	//因为将无参构造封装，所以提供一个静态方法new对象，执行只new一次
	public static PropertiesUtils getInstance() {
		if ( propertiesUtils == null ) {
			propertiesUtils = new PropertiesUtils();
		}
		return propertiesUtils;
	}
	//提供一个通过key获得properties对象内的value
	public String getValue(String key) {
		return properties.getProperty(key);
	}
}
